package com.kaifamiao.collection;

import java.util.ArrayList;
import java.util.Collection;

public class TestCollection {

    public static void main(String[] args) {

        // "钻石运算符" (也称作"菱形语法")
        Collection<String> x = new ArrayList<>();
        x.add( "唐三藏" );
        x.add( "孙悟空" );
        x.add( "白龙马" );
        System.out.println( x );

        Collection<String> t = new ArrayList<>();
        t.addAll( x );
        t.add( "白骨精" );
        System.out.println( t );

        Collection<String> y = new ArrayList<>();
        y.addAll( x );
        y.add( "猪悟能" );
        y.add( "沙悟净" );
        System.out.println( y );

        // 判断 y 中是否包含 x 中所有元素
        System.out.println( y.containsAll( x ) );
        // 判断 y 中是否包含 t 中所有元素
        System.out.println( y.containsAll( t ) );

        // 从 y 中删除 包含在 x 中的元素
        // System.out.println( y.removeAll( x ) );
        // 从 y 中删除 包含在 t 中的元素
        // System.out.println( y.removeAll( t ) );

        // 保留 y 中 包含在 x 中的元素，删除其它元素
        // System.out.println( y.retainAll( x ) );
        // 保留 y 中 包含在 t 中的元素，删除其它元素
        System.out.println( y.retainAll( t ) );
        System.out.println( y );

    }

}
